package org.dxy.infrastructure.persistent.db.mybatispuls.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.dxy.infrastructure.persistent.db.mybatispuls.po.query.MBOMViewPo;

import java.util.List;

/**
 * MBOM视图服务接口
 * @author dxy
 * @createTime 2025/9/10
 */
public interface MBOMViewService extends IService<MBOMViewPo> {

    /**
     * 根据产品ID统计MBOM数量
     */
    long countByProductId(Long productId);

    /**
     * 检查MBOM编码是否存在
     */
    boolean existsByMbomCode(String mbomCode);

    /**
     * 根据产品ID获取MBOM列表
     */
    List<MBOMViewPo> getByProductId(Long productId);

    /**
     * 根据状态获取MBOM列表
     */
    List<MBOMViewPo> getByStatus(String status);

    /**
     * 根据产品ID和状态获取MBOM列表
     */
    List<MBOMViewPo> getByProductIdAndStatus(Long productId, String status);

    /**
     * 获取最新版本的MBOM
     */
    MBOMViewPo getLatestVersionByProductId(Long productId);
}